--- id: TASK-044 title: Grammar suggestions & ignore via Harper codeAction status: "\U0001F7E6 Backlog" assignee: [] created_date: '2026-07-14 15:48' labels: - feature dependencies: [] priority: medium ordinal: 43000 --- ## Description Wire Harper's fixes/ignore into the Alt+; popup. Currently glint only renders green grammar underlines (TASK-043). Harper advertises codeActionProvider + executeCommand commands (HarperIgnoreLint, HarperAddToUserDict, HarperAddToFileDict, HarperAddToWSDict). Add: on a grammar span at cursor/click, send textDocument/codeAction for the diagnostic range -> show returned fixes as replacement rows in the proofing popup (reuse spellOption/applySpell plumbing); Ignore -> executeCommand HarperIgnoreLint; Add to dict -> HarperAddToUserDict. Needs: LSP client request/response correlation (id->reply channel; the current client only fires notifications + answers server requests), codeAction result parsing (WorkspaceEdit / Command), and mapping the grammar Diag back to harper's diagnostic (code+range). Store the raw LSP diagnostics (code, range, data) alongside the rune-mapped Diag so codeAction can reference them. ## Acceptance Criteria - [ ] #1 Grammar span at cursor offers Harper's fix suggestions in the Alt+; popup - [ ] #2 Selecting a fix applies harper's replacement to the buffer - [ ] #3 Ignore removes the grammar underline via HarperIgnoreLint - [ ] #4 Add-to-dictionary uses HarperAddToUserDict